//
//
//
//
//  Created by wulanzhou on 16-3-7.
//  Copyright (c) 2016年 . All rights reserved.
//

#import <Foundation/Foundation.h>
#import "AFHTTPRequestOperation.h"
//请求方式(ServiceHttpSoap1与ServiceHttpSoap12的区别在于请求头不一样)
typedef enum{
    ASIServiceHttpGet=0,
    ASIServiceHttpPost=1,
    ASIServiceHttpSoap1=2,
    ASIServiceHttpSoap12=3
}WBServiceHttpWay;

@interface WBRequestArgs : NSObject
/**
 *  请求对象
 */
@property(nonatomic,readonly) AFHTTPRequestOperation *request;
/**
 *  请求URL
 */
@property(nonatomic,readonly) NSURL *webURL;
@property(nonatomic,readonly) NSString *defaultSoapMesage;
/**
 *  请求方式,默认为ServiceHttpSoap12请求
 */
@property(nonatomic,assign)   WBServiceHttpWay httpWay;
/**
 *  请求超时时间,默认25秒
 */
@property(nonatomic,assign)   NSTimeInterval timeOutSeconds;
/**
 *  编码方式
 */
@property(nonatomic,assign)   NSStringEncoding defaultEncoding;
/**
 *  webservice访问地址
 */
@property(nonatomic,copy)     NSString *serviceURL;
/**
 *  webservice命名空间
 */
@property(nonatomic,copy)     NSString *serviceNameSpace;
/**
 *  调用的方法名
 */
@property(nonatomic,copy)     NSString *methodName;
/**
 *  请求字符串
 */
@property(nonatomic,copy,getter=requestBodyMessage)     NSString *bodyMessage;
/**
 *  有认证的请求头设置
 */
@property(nonatomic,copy)     NSString *soapHeader;
/**
 *  请求头
 */
@property(nonatomic,retain)   NSDictionary *headers;
/**
 *  参数设置
 */
@property(nonatomic,retain)   NSArray *soapParams;


/**
 *  用户请求唯一key,默认值由[时间+serviceType]组成
 */
@property (nonatomic,readonly) NSString *requestKey;

/**
 *  传参处理
 */
@property (nonatomic,readonly) NSMutableDictionary *postParams;


/**
 *  基于参数data封装(其它参数)
 *
 *  @param firstObject 可变参数 key与value组成
 */
-(void)paramWithObjectsAndKeys:(NSString*)firstObject, ... NS_REQUIRES_NIL_TERMINATION;

/**
 *  一次性设置所有请求参数
 *
 *  @param params 请求参数 key与value组成
 */
-(void)addParamWithDictionary:(NSDictionary*)params;

-(NSURL*)requestURL;
+(WBRequestArgs*)serviceMethodName:(NSString*)methodName;
+(WBRequestArgs*)serviceMethodName:(NSString*)methodName soapMessage:(NSString*)soapMsg;

@end
